#ifndef ALPHABETA_PLAYER
#define ALPHABETA_PLAYER

#include "player.hpp"

class AlphabetaPlayer {
public:
    AlphabetaPlayer(const Camp camp, const int max_depth);
    virtual Move decide(Board board);
    virtual void win();
    virtual void lose();
private:
    const int _MIN_VALUE = -999;
    const int _MAX_VALUE = 999;
    const int _max_depth;
    int get_weight(Board &board, const Move &m, const int depth, bool self, int alpha, int beta);
    int value(const Board &board);
    Camp _camp;
};

#endif